home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / apps / 646 / jukebx14 / src / list_mod.c < prev    next >
C/C++ Source or Header  |  1992-10-29  |  1KB  |  57 lines

  1. #include <tos.h>
  2. #include <stdio.h>
  3.  
  4.  
  5. void extractinfo(char *fn, char *p, size_t length)
  6. {char *type;
  7.  long *lp;
  8.  
  9.      lp = (long*)&p[0x438];
  10.      
  11.     type = (*lp == 'M.K.') ? "31": "15";
  12.     
  13.     printf("%20s%32s%10ld%5s instr.\n",fn, p, length, type);
  14. }
  15.  
  16. char *get_path(void)
  17. {static char path[128];
  18.     
  19.     path[0] = 'A'+ Dgetdrv();
  20.     path[1] = ':';
  21.     Dgetpath(path+2, 0);
  22.     
  23.     return path;
  24. }
  25.  
  26.  
  27. int main()
  28. {int  end,f;
  29.  char *p;
  30.  DTA  mydta, *olddta;
  31.  
  32.      olddta = Fgetdta();
  33.     Fsetdta(&mydta);
  34.     
  35.     if (Fsfirst("\\*.*",FA_VOLUME) == 0)
  36.         printf("Disc: %s\n",mydta.d_fname);
  37.     printf("Path: %s\n",get_path());
  38.     
  39.     printf("%20s%32s%10s%15s\n","FILE NAME","MODULE NAME","SIZE","INSTRUMENTS");
  40.  
  41.     end = Fsfirst("*.MOD", 0);
  42.     
  43.     while(!end)
  44.     {
  45.         f = Fopen(mydta.d_fname, 0);
  46.         p = Malloc(2048 /*mydta.d_length*/);
  47.         Fread(f, 2048 /*mydta.d_length*/, p);
  48.         Fclose(f);
  49.         extractinfo(mydta.d_fname, p, mydta.d_length);
  50.         Mfree(p);
  51.         end = Fsnext();
  52.     }
  53.     
  54.     Fsetdta(olddta);
  55.     
  56.     return 0;    
  57. }